From d923fd13f7fe5c2a533bc0efe4cf3e5fbb61a943 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Thu, 14 Jul 2005 00:31:42 +0000 Subject: [PATCH] part of bug#2001, forgot to cvs add it --- skins/common/sorttable.js | 210 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 skins/common/sorttable.js diff --git a/skins/common/sorttable.js b/skins/common/sorttable.js new file mode 100644 index 0000000000..994154961b --- /dev/null +++ b/skins/common/sorttable.js @@ -0,0 +1,210 @@ +/* + * Sorttable.js + * A script that let you sort table columns by clicking on the header. + * + * Grabbed from: http://www.kryogenix.org/code/browser/sorttable/ + * Authors: + * - Stuart Langridge + * - C. David Eagle ( http://books.mingovia.org/ ) + * + * getInnerText() function by Erik at http://webfx.eae.net/ + * + * Some changes probably have been made by Avar + * http://bugzilla.wikimedia.org/show_bug.cgi?id=2001 + * + * + * TODO: + * i18n numeric sort + * + * Licence: X11 + * + */ + +addEvent(window, "load", sortables_init); + +var SORT_COLUMN_INDEX; + +function sortables_init() { + // Find all tables with class sortable and make them sortable + if (!document.getElementsByTagName) return; + tbls = document.getElementsByTagName("table"); + for (ti=0;ti 0) { + var firstRow = table.rows[0]; + } + if (!firstRow) return; + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i=0;i + var txt = ts_getInnerText(cell); +*/ + cell.innerHTML = cell.innerHTML+''; + } +} + +function ts_getInnerText(el) { + if (typeof el == "string") return el; + if (typeof el == "undefined") { return el }; + if (el.innerText) return el.innerText; //Not needed but it is faster + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + +function ts_resortTable(lnk) { + // get the span + var span; + for (var ci=0;ci